#include "trade.h"
#include <string.h>
int nReq;

Trade::Trade(void)
{	
	_FrontConnected = NULL;
	_FrontDisconnected = NULL;
	_HeartBeatWarning = NULL;
	_RspError = NULL;
	_RtnBrokerDeposit = NULL;
	_RtnInvestorSumInfo = NULL;
	_RtnClientSGDataSyncStart = NULL;
	_RtnClientSGDataSyncEnd = NULL;
	_RspRiskUserLogin = NULL;
	_RspQryInvestorMarginRate = NULL;
	_RtnProduct = NULL;
	_RtnInstrument = NULL;
	_RspQryOrderStat = NULL;
	_RtnExchange = NULL;
	_RspInvestorPositionStatic = NULL;
	_RspInvestorTradeStatic = NULL;
	_RtnRiskDepthMarketData = NULL;
	_RtnTimeSync = NULL;
	_RspInstPositionRate = NULL;
	_RspProductPositionRate = NULL;
	_RspQryTradingCodeHash = NULL;
	_RspQryTradingCode = NULL;
	_RtnTradingCode = NULL;
	_RtnDelTradingCode = NULL;
	_RtnSequencialBrokerUserEvent = NULL;
	_RtnSequencialTrade = NULL;
	_RtnSequencialOrder = NULL;
	_RspRiskOrderInsert = NULL;
	_RspRiskOrderAction = NULL;
	_RtnSequencialPosition = NULL;
	_RspRiskNotifyCommand = NULL;
	_RspBatchForceCloseCalc = NULL;
	_RspForceCloseCalc = NULL;
	_RspSetIndexNPPParam = NULL;
	_RtnIndexNPP = NULL;
	_RspRemIndexNPPParam = NULL;
	_RspForceCloseAccount = NULL;
	_RspQryLogin = NULL;
	_RspQrySafePriceRange = NULL;
	_RspQrySafePriceRangeAccount = NULL;
	_RspQryPriceVaryEffect = NULL;
	_RtnDepartment = NULL;
	_RspIndexNPP = NULL;
	_RtnTradeParam = NULL;
	_RspRiskParkedOrderInsert = NULL;
	_RspRemoveRiskParkedOrder = NULL;
	_RtnSeqRiskParkedOrder = NULL;
	_RspRiskUserPasswordUpd = NULL;
	_RtnSeqDeposit = NULL;
	_RspAddRiskUserEvent = NULL;
	_RspQryPredictRiskAccount = NULL;
	_RspQryPredictRiskPosition = NULL;
	_RtnRiskInvestor = NULL;
	_RspQryInvestorLinkMan = NULL;
	_RspQryInvestorDepartment = NULL;
	_RtnDelIndexNPP = NULL;
	_RtnRiskUserFunction = NULL;
	_RtnDelRiskUserFunction = NULL;
	_RtnRiskSyncAccount = NULL;
	_RtnSeqPreRiskAccount = NULL;
	_RtnNoticeToken = NULL;
	_RtnNoticePattern = NULL;
	_RspModNoticePattern = NULL;
	_RtnVaryMarketData = NULL;
	_RspAddRiskNotifyA = NULL;
	_RspAddBizNotice = NULL;
	_RtnSeqBizNotice = NULL;
	_RspRiskQryBrokerDeposit = NULL;
	_RtnRiskParamInfo = NULL;
	_RspModRiskInvestorParam = NULL;
	_RspRemRiskInvestorParam = NULL;
	_RtnRiskInvestorParam = NULL;
	_RtnDelRiskInvestorParam = NULL;
	_RspForceRiskUserLogout = NULL;
	_RtnForceRiskUserLogout = NULL;
	_RspAddRiskPattern = NULL;
	_RspModRiskPattern = NULL;
	_RspRemRiskPattern = NULL;
	_RtnRiskPattern = NULL;
	_RtnDelRiskPattern = NULL;
	_RspAddInvestorPattern = NULL;
	_RspModInvestorPattern = NULL;
	_RspRemInvestorPattern = NULL;
	_RtnInvestorPattern = NULL;
	_RtnDelInvestorPattern = NULL;
	_RtnRiskNotifyToken = NULL;
	_RtnSeqRiskNotifyB = NULL;
	_RspQryPositionStat = NULL;
	_RspQryTradeStat = NULL;
	_RspQryInvestorLinkManHash = NULL;
	_RspQryInvestorDepartmentHash = NULL;
	_RspQryStressTest = NULL;
	_RspQryLowMarginInvestorHash = NULL;
	_RspQryLowMarginInvestor = NULL;
	_RtnLowMarginInvestor = NULL;
	_RtnDelLowMarginInvestor = NULL;
	_RtnSeqSmsCustomNotify = NULL;
	_RspSetSmsStatus = NULL;
	_RspQryExchMarginRate = NULL;
	_RspReqQryCommissionRate = NULL;
	_RtnSeqIPGroupMargin = NULL;
	_RspQrySecAgentInvestorHash = NULL;
	_RspQrySecAgentInvestor = NULL;
	_RtnSecAgentInvestor = NULL;
	_RtnDelSecAgentInvestor = NULL;
	_RtnProductExchangeRate = NULL;
	_RspQryOptionInstrCommRate = NULL;
	_RspQryMMOptionInstrCommRate = NULL;
	_RspQryExecOrder = NULL;
	_RspQryLogUserLoginStat = NULL;
	_RspQryLogUserLoginInfo = NULL;
	_RspQryInstrumentGreeks = NULL;
	_RspQryExeciseTest = NULL;
	_RspQryUserRightsAssign = NULL;
	_RspQryCurrDRIdentity = NULL;
	_RspQrySecAgentTradingAccount = NULL;
	_RspQrySyncDelaySwap = NULL;
	_RspQrySecAgentCheckMode = NULL;
	_RtnSecAgentCheckMode = NULL;
}

DLL_EXPORT_C_DECL void WINAPI SetOnFrontConnected(Trade* spi, void* func){spi->_FrontConnected = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnFrontDisconnected(Trade* spi, void* func){spi->_FrontDisconnected = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnHeartBeatWarning(Trade* spi, void* func){spi->_HeartBeatWarning = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspError(Trade* spi, void* func){spi->_RspError = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnBrokerDeposit(Trade* spi, void* func){spi->_RtnBrokerDeposit = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnInvestorSumInfo(Trade* spi, void* func){spi->_RtnInvestorSumInfo = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnClientSGDataSyncStart(Trade* spi, void* func){spi->_RtnClientSGDataSyncStart = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnClientSGDataSyncEnd(Trade* spi, void* func){spi->_RtnClientSGDataSyncEnd = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRiskUserLogin(Trade* spi, void* func){spi->_RspRiskUserLogin = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryInvestorMarginRate(Trade* spi, void* func){spi->_RspQryInvestorMarginRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnProduct(Trade* spi, void* func){spi->_RtnProduct = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnInstrument(Trade* spi, void* func){spi->_RtnInstrument = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryOrderStat(Trade* spi, void* func){spi->_RspQryOrderStat = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnExchange(Trade* spi, void* func){spi->_RtnExchange = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspInvestorPositionStatic(Trade* spi, void* func){spi->_RspInvestorPositionStatic = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspInvestorTradeStatic(Trade* spi, void* func){spi->_RspInvestorTradeStatic = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskDepthMarketData(Trade* spi, void* func){spi->_RtnRiskDepthMarketData = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnTimeSync(Trade* spi, void* func){spi->_RtnTimeSync = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspInstPositionRate(Trade* spi, void* func){spi->_RspInstPositionRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspProductPositionRate(Trade* spi, void* func){spi->_RspProductPositionRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryTradingCodeHash(Trade* spi, void* func){spi->_RspQryTradingCodeHash = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryTradingCode(Trade* spi, void* func){spi->_RspQryTradingCode = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnTradingCode(Trade* spi, void* func){spi->_RtnTradingCode = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelTradingCode(Trade* spi, void* func){spi->_RtnDelTradingCode = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSequencialBrokerUserEvent(Trade* spi, void* func){spi->_RtnSequencialBrokerUserEvent = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSequencialTrade(Trade* spi, void* func){spi->_RtnSequencialTrade = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSequencialOrder(Trade* spi, void* func){spi->_RtnSequencialOrder = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRiskOrderInsert(Trade* spi, void* func){spi->_RspRiskOrderInsert = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRiskOrderAction(Trade* spi, void* func){spi->_RspRiskOrderAction = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSequencialPosition(Trade* spi, void* func){spi->_RtnSequencialPosition = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRiskNotifyCommand(Trade* spi, void* func){spi->_RspRiskNotifyCommand = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspBatchForceCloseCalc(Trade* spi, void* func){spi->_RspBatchForceCloseCalc = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspForceCloseCalc(Trade* spi, void* func){spi->_RspForceCloseCalc = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspSetIndexNPPParam(Trade* spi, void* func){spi->_RspSetIndexNPPParam = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnIndexNPP(Trade* spi, void* func){spi->_RtnIndexNPP = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRemIndexNPPParam(Trade* spi, void* func){spi->_RspRemIndexNPPParam = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspForceCloseAccount(Trade* spi, void* func){spi->_RspForceCloseAccount = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryLogin(Trade* spi, void* func){spi->_RspQryLogin = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQrySafePriceRange(Trade* spi, void* func){spi->_RspQrySafePriceRange = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQrySafePriceRangeAccount(Trade* spi, void* func){spi->_RspQrySafePriceRangeAccount = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryPriceVaryEffect(Trade* spi, void* func){spi->_RspQryPriceVaryEffect = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDepartment(Trade* spi, void* func){spi->_RtnDepartment = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspIndexNPP(Trade* spi, void* func){spi->_RspIndexNPP = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnTradeParam(Trade* spi, void* func){spi->_RtnTradeParam = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRiskParkedOrderInsert(Trade* spi, void* func){spi->_RspRiskParkedOrderInsert = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRemoveRiskParkedOrder(Trade* spi, void* func){spi->_RspRemoveRiskParkedOrder = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSeqRiskParkedOrder(Trade* spi, void* func){spi->_RtnSeqRiskParkedOrder = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRiskUserPasswordUpd(Trade* spi, void* func){spi->_RspRiskUserPasswordUpd = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSeqDeposit(Trade* spi, void* func){spi->_RtnSeqDeposit = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspAddRiskUserEvent(Trade* spi, void* func){spi->_RspAddRiskUserEvent = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryPredictRiskAccount(Trade* spi, void* func){spi->_RspQryPredictRiskAccount = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryPredictRiskPosition(Trade* spi, void* func){spi->_RspQryPredictRiskPosition = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskInvestor(Trade* spi, void* func){spi->_RtnRiskInvestor = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryInvestorLinkMan(Trade* spi, void* func){spi->_RspQryInvestorLinkMan = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryInvestorDepartment(Trade* spi, void* func){spi->_RspQryInvestorDepartment = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelIndexNPP(Trade* spi, void* func){spi->_RtnDelIndexNPP = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskUserFunction(Trade* spi, void* func){spi->_RtnRiskUserFunction = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelRiskUserFunction(Trade* spi, void* func){spi->_RtnDelRiskUserFunction = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskSyncAccount(Trade* spi, void* func){spi->_RtnRiskSyncAccount = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSeqPreRiskAccount(Trade* spi, void* func){spi->_RtnSeqPreRiskAccount = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnNoticeToken(Trade* spi, void* func){spi->_RtnNoticeToken = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnNoticePattern(Trade* spi, void* func){spi->_RtnNoticePattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspModNoticePattern(Trade* spi, void* func){spi->_RspModNoticePattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnVaryMarketData(Trade* spi, void* func){spi->_RtnVaryMarketData = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspAddRiskNotifyA(Trade* spi, void* func){spi->_RspAddRiskNotifyA = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspAddBizNotice(Trade* spi, void* func){spi->_RspAddBizNotice = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSeqBizNotice(Trade* spi, void* func){spi->_RtnSeqBizNotice = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRiskQryBrokerDeposit(Trade* spi, void* func){spi->_RspRiskQryBrokerDeposit = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskParamInfo(Trade* spi, void* func){spi->_RtnRiskParamInfo = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspModRiskInvestorParam(Trade* spi, void* func){spi->_RspModRiskInvestorParam = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRemRiskInvestorParam(Trade* spi, void* func){spi->_RspRemRiskInvestorParam = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskInvestorParam(Trade* spi, void* func){spi->_RtnRiskInvestorParam = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelRiskInvestorParam(Trade* spi, void* func){spi->_RtnDelRiskInvestorParam = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspForceRiskUserLogout(Trade* spi, void* func){spi->_RspForceRiskUserLogout = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnForceRiskUserLogout(Trade* spi, void* func){spi->_RtnForceRiskUserLogout = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspAddRiskPattern(Trade* spi, void* func){spi->_RspAddRiskPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspModRiskPattern(Trade* spi, void* func){spi->_RspModRiskPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRemRiskPattern(Trade* spi, void* func){spi->_RspRemRiskPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskPattern(Trade* spi, void* func){spi->_RtnRiskPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelRiskPattern(Trade* spi, void* func){spi->_RtnDelRiskPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspAddInvestorPattern(Trade* spi, void* func){spi->_RspAddInvestorPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspModInvestorPattern(Trade* spi, void* func){spi->_RspModInvestorPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspRemInvestorPattern(Trade* spi, void* func){spi->_RspRemInvestorPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnInvestorPattern(Trade* spi, void* func){spi->_RtnInvestorPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelInvestorPattern(Trade* spi, void* func){spi->_RtnDelInvestorPattern = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnRiskNotifyToken(Trade* spi, void* func){spi->_RtnRiskNotifyToken = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSeqRiskNotifyB(Trade* spi, void* func){spi->_RtnSeqRiskNotifyB = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryPositionStat(Trade* spi, void* func){spi->_RspQryPositionStat = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryTradeStat(Trade* spi, void* func){spi->_RspQryTradeStat = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryInvestorLinkManHash(Trade* spi, void* func){spi->_RspQryInvestorLinkManHash = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryInvestorDepartmentHash(Trade* spi, void* func){spi->_RspQryInvestorDepartmentHash = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryStressTest(Trade* spi, void* func){spi->_RspQryStressTest = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryLowMarginInvestorHash(Trade* spi, void* func){spi->_RspQryLowMarginInvestorHash = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryLowMarginInvestor(Trade* spi, void* func){spi->_RspQryLowMarginInvestor = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnLowMarginInvestor(Trade* spi, void* func){spi->_RtnLowMarginInvestor = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelLowMarginInvestor(Trade* spi, void* func){spi->_RtnDelLowMarginInvestor = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSeqSmsCustomNotify(Trade* spi, void* func){spi->_RtnSeqSmsCustomNotify = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspSetSmsStatus(Trade* spi, void* func){spi->_RspSetSmsStatus = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryExchMarginRate(Trade* spi, void* func){spi->_RspQryExchMarginRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspReqQryCommissionRate(Trade* spi, void* func){spi->_RspReqQryCommissionRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSeqIPGroupMargin(Trade* spi, void* func){spi->_RtnSeqIPGroupMargin = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQrySecAgentInvestorHash(Trade* spi, void* func){spi->_RspQrySecAgentInvestorHash = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQrySecAgentInvestor(Trade* spi, void* func){spi->_RspQrySecAgentInvestor = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSecAgentInvestor(Trade* spi, void* func){spi->_RtnSecAgentInvestor = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnDelSecAgentInvestor(Trade* spi, void* func){spi->_RtnDelSecAgentInvestor = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnProductExchangeRate(Trade* spi, void* func){spi->_RtnProductExchangeRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryOptionInstrCommRate(Trade* spi, void* func){spi->_RspQryOptionInstrCommRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryMMOptionInstrCommRate(Trade* spi, void* func){spi->_RspQryMMOptionInstrCommRate = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryExecOrder(Trade* spi, void* func){spi->_RspQryExecOrder = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryLogUserLoginStat(Trade* spi, void* func){spi->_RspQryLogUserLoginStat = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryLogUserLoginInfo(Trade* spi, void* func){spi->_RspQryLogUserLoginInfo = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryInstrumentGreeks(Trade* spi, void* func){spi->_RspQryInstrumentGreeks = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryExeciseTest(Trade* spi, void* func){spi->_RspQryExeciseTest = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryUserRightsAssign(Trade* spi, void* func){spi->_RspQryUserRightsAssign = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQryCurrDRIdentity(Trade* spi, void* func){spi->_RspQryCurrDRIdentity = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQrySecAgentTradingAccount(Trade* spi, void* func){spi->_RspQrySecAgentTradingAccount = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQrySyncDelaySwap(Trade* spi, void* func){spi->_RspQrySyncDelaySwap = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRspQrySecAgentCheckMode(Trade* spi, void* func){spi->_RspQrySecAgentCheckMode = func;}
DLL_EXPORT_C_DECL void WINAPI SetOnRtnSecAgentCheckMode(Trade* spi, void* func){spi->_RtnSecAgentCheckMode = func;}

DLL_EXPORT_C_DECL void* WINAPI CreateApi(){return CShfeFtdcRiskUserApi::CreateFtdcRiskUserApi("./log/");}
DLL_EXPORT_C_DECL void* WINAPI CreateSpi(){return new Trade();}
DLL_EXPORT_C_DECL void* WINAPI Release(CShfeFtdcRiskUserApi *api){api->Release(); return 0;}
DLL_EXPORT_C_DECL void* WINAPI Init(CShfeFtdcRiskUserApi *api){api->Init(); return 0;}
DLL_EXPORT_C_DECL void* WINAPI Join(CShfeFtdcRiskUserApi *api){api->Join(); return 0;}
DLL_EXPORT_C_DECL void* WINAPI RegisterFront(CShfeFtdcRiskUserApi *api, char *pszFrontAddress){api->RegisterFront(pszFrontAddress); return 0;}
DLL_EXPORT_C_DECL void* WINAPI RegisterSpi(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskUserSpi *pSpi){api->RegisterSpi(pSpi); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRiskUserLogin(CShfeFtdcRiskUserApi *api, CShfeFtdcReqRiskUserLoginField *pReqRiskUserLogin, int nRequestID){api->ReqRiskUserLogin(pReqRiskUserLogin, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryInvestorMarginRate(CShfeFtdcRiskUserApi *api, CShfeFtdcQryInvestorMarginRateField *pQryInvestorMarginRate, int nRequestID){api->ReqQryInvestorMarginRate(pQryInvestorMarginRate, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryOrderStat(CShfeFtdcRiskUserApi *api, CShfeFtdcQryStatField *pQryStat, int nRequestID){api->ReqQryOrderStat(pQryStat, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubRiskMarketData(CShfeFtdcRiskUserApi *api, CShfeFtdcSubMarketDataField *pSubMarketData, int SubMarketDataCnt, int nRequestID){api->ReqSubRiskMarketData(pSubMarketData, SubMarketDataCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqUnSubRiskMarketData(CShfeFtdcRiskUserApi *api, CShfeFtdcSubMarketDataField *pSubMarketData, int nRequestID){api->ReqUnSubRiskMarketData(pSubMarketData, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryInstPositionRate(CShfeFtdcRiskUserApi *api, CShfeFtdcQryInstPositionRateField *pQryInstPositionRate, int QryInstPositionRateCnt, int nRequestID){api->ReqQryInstPositionRate(pQryInstPositionRate, QryInstPositionRateCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryProductPositionRate(CShfeFtdcRiskUserApi *api, CShfeFtdcQryProductPositionRateField *pQryProductPositionRate, int nRequestID){api->ReqQryProductPositionRate(pQryProductPositionRate, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryTradingCodeHash(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int nRequestID){api->ReqQryTradingCodeHash(pInvestorIDRange, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryTradingCode(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int InvestorIDRangeCnt, int nRequestID){api->ReqQryTradingCode(pInvestorIDRange, InvestorIDRangeCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubscribeTrade(CShfeFtdcRiskUserApi *api, CShfeFtdcNotifySequenceField *pNotifySequence, int nRequestID){api->ReqSubscribeTrade(pNotifySequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubscribeOrder(CShfeFtdcRiskUserApi *api, CShfeFtdcNotifySequenceField *pNotifySequence, int nRequestID){api->ReqSubscribeOrder(pNotifySequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubBrokerUserEvent(CShfeFtdcRiskUserApi *api, CShfeFtdcNotifySequenceField *pNotifySequence, int nRequestID){api->ReqSubBrokerUserEvent(pNotifySequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRiskOrderInsert(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskForceCloseOrderField *pRiskForceCloseOrder, int nRequestID){api->ReqRiskOrderInsert(pRiskForceCloseOrder, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRiskOrderAction(CShfeFtdcRiskUserApi *api, CShfeFtdcInputOrderActionField *pInputOrderAction, int nRequestID){api->ReqRiskOrderAction(pInputOrderAction, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubscribePosition(CShfeFtdcRiskUserApi *api, CShfeFtdcNotifySequenceField *pNotifySequence, int nRequestID){api->ReqSubscribePosition(pNotifySequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRiskNotifyCommand(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskNotifyCommandField *pRiskNotifyCommand, int nRequestID){api->ReqRiskNotifyCommand(pRiskNotifyCommand, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqBatchForceCloseCalc(CShfeFtdcRiskUserApi *api, CShfeFtdcForceCloseStandardField *pForceCloseStandard, CShfeFtdcForceClosePositionRuleField *pForceClosePositionRule, int ForceClosePositionRuleCnt, CShfeFtdcForceCloseListField *pForceCloseList, int ForceCloseListCnt, int nRequestID){api->ReqBatchForceCloseCalc(pForceCloseStandard, pForceClosePositionRule, ForceClosePositionRuleCnt, pForceCloseList, ForceCloseListCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqForceCloseCalc(CShfeFtdcRiskUserApi *api, CShfeFtdcForceCloseStandardField *pForceCloseStandard, CShfeFtdcForceClosePositionField *pForceClosePosition, int ForceClosePositionCnt, CShfeFtdcForceCloseListField *pForceCloseList, int nRequestID){api->ReqForceCloseCalc(pForceCloseStandard, pForceClosePosition, ForceClosePositionCnt, pForceCloseList, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSetIndexNPPParam(CShfeFtdcRiskUserApi *api, CShfeFtdcIndexNPPParamField *pIndexNPPParam, int nRequestID){api->ReqSetIndexNPPParam(pIndexNPPParam, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRemIndexNPPParam(CShfeFtdcRiskUserApi *api, CShfeFtdcIndexNPPParamField *pIndexNPPParam, int nRequestID){api->ReqRemIndexNPPParam(pIndexNPPParam, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryLogin(CShfeFtdcRiskUserApi *api, CShfeFtdcNormalRiskQueryField *pNormalRiskQuery, int nRequestID){api->ReqQryLogin(pNormalRiskQuery, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryPriceVaryEffect(CShfeFtdcRiskUserApi *api, CShfeFtdcQryPriceVaryEffectField *pQryPriceVaryEffect, int nRequestID){api->ReqQryPriceVaryEffect(pQryPriceVaryEffect, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQrySafePriceRange(CShfeFtdcRiskUserApi *api, CShfeFtdcQrySafePriceRangeField *pQrySafePriceRange, CShfeFtdcPriceVaryParamField *pPriceVaryParam, int PriceVaryParamCnt, CShfeFtdcBrokerInvestorCurrencyField *pBrokerInvestorCurrency, int BrokerInvestorCurrencyCnt, int nRequestID){api->ReqQrySafePriceRange(pQrySafePriceRange, pPriceVaryParam, PriceVaryParamCnt, pBrokerInvestorCurrency, BrokerInvestorCurrencyCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRiskParkedOrderInsert(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskParkedOrderField *pRiskParkedOrder, int nRequestID){api->ReqRiskParkedOrderInsert(pRiskParkedOrder, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRemoveRiskParkedOrder(CShfeFtdcRiskUserApi *api, CShfeFtdcRemoveRiskParkedOrderField *pRemoveRiskParkedOrder, int nRequestID){api->ReqRemoveRiskParkedOrder(pRemoveRiskParkedOrder, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubRiskParkedOrder(CShfeFtdcRiskUserApi *api, CShfeFtdcNotifySequenceField *pNotifySequence, int nRequestID){api->ReqSubRiskParkedOrder(pNotifySequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRiskUserPasswordUpd(CShfeFtdcRiskUserApi *api, CShfeFtdcUserPasswordUpdateField *pUserPasswordUpdate, int nRequestID){api->ReqRiskUserPasswordUpd(pUserPasswordUpdate, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubSeqDeposit(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskNtfSequenceField *pRiskNtfSequence, int nRequestID){api->ReqSubSeqDeposit(pRiskNtfSequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqAddRiskUserEvent(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskUserEventField *pRiskUserEvent, int nRequestID){api->ReqAddRiskUserEvent(pRiskUserEvent, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryPredictRisk(CShfeFtdcRiskUserApi *api, CShfeFtdcPredictRiskParamField *pPredictRiskParam, CShfeFtdcBrokerInvestorField *pBrokerInvestor, int BrokerInvestorCnt, CShfeFtdcProductLimitsField *pProductLimits, int ProductLimitsCnt, int nRequestID){api->ReqQryPredictRisk(pPredictRiskParam, pBrokerInvestor, BrokerInvestorCnt, pProductLimits, ProductLimitsCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryInvestorLinkMan(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int InvestorIDRangeCnt, int nRequestID){api->ReqQryInvestorLinkMan(pInvestorIDRange, InvestorIDRangeCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryInvestorDepartment(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int InvestorIDRangeCnt, int nRequestID){api->ReqQryInvestorDepartment(pInvestorIDRange, InvestorIDRangeCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubPreRiskAccount(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskNtfSequenceField *pRiskNtfSequence, int nRequestID){api->ReqSubPreRiskAccount(pRiskNtfSequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqModNoticePattern(CShfeFtdcRiskUserApi *api, CShfeFtdcNoticePatternField *pNoticePattern, int nRequestID){api->ReqModNoticePattern(pNoticePattern, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubVaryMarketData(CShfeFtdcRiskUserApi *api, CShfeFtdcPriceRangeField *pPriceRange, int PriceRangeCnt, int nRequestID){api->ReqSubVaryMarketData(pPriceRange, PriceRangeCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqUnSubVaryMarketData(CShfeFtdcRiskUserApi *api, CShfeFtdcSubMarketDataField *pSubMarketData, int SubMarketDataCnt, int nRequestID){api->ReqUnSubVaryMarketData(pSubMarketData, SubMarketDataCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqAddRiskNotifyA(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskNotifyAField *pRiskNotifyA, int nRequestID){api->ReqAddRiskNotifyA(pRiskNotifyA, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqAddBizNotice(CShfeFtdcRiskUserApi *api, CShfeFtdcBizNoticeField *pBizNotice, int nRequestID){api->ReqAddBizNotice(pBizNotice, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubSeqData(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskNtfSequenceField *pRiskNtfSequence, int nRequestID){api->ReqSubSeqData(pRiskNtfSequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRiskQryBrokerDeposit(CShfeFtdcRiskUserApi *api, CShfeFtdcQueryBrokerDepositField *pQueryBrokerDeposit, int nRequestID){api->ReqRiskQryBrokerDeposit(pQueryBrokerDeposit, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqModRiskInvestorParam(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskInvestorParamField *pRiskInvestorParam, int nRequestID){api->ReqModRiskInvestorParam(pRiskInvestorParam, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRemRiskInvestorParam(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskInvestorParamField *pRiskInvestorParam, int nRequestID){api->ReqRemRiskInvestorParam(pRiskInvestorParam, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqForceRiskUserLogout(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskLoginInfoField *pRiskLoginInfo, int nRequestID){api->ReqForceRiskUserLogout(pRiskLoginInfo, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqAddRiskPattern(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskPatternField *pRiskPattern, int nRequestID){api->ReqAddRiskPattern(pRiskPattern, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqModRiskPattern(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskPatternField *pRiskPattern, int nRequestID){api->ReqModRiskPattern(pRiskPattern, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRemRiskPattern(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskPatternField *pRiskPattern, int nRequestID){api->ReqRemRiskPattern(pRiskPattern, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqAddInvestorPattern(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorPatternField *pInvestorPattern, int InvestorPatternCnt, int nRequestID){api->ReqAddInvestorPattern(pInvestorPattern, InvestorPatternCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqModInvestorPattern(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorPatternField *pInvestorPattern, int InvestorPatternCnt, int nRequestID){api->ReqModInvestorPattern(pInvestorPattern, InvestorPatternCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqRemInvestorPattern(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorPatternField *pInvestorPattern, int InvestorPatternCnt, int nRequestID){api->ReqRemInvestorPattern(pInvestorPattern, InvestorPatternCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSubSeqRiskNotifyB(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskNtfSequenceField *pRiskNtfSequence, int nRequestID){api->ReqSubSeqRiskNotifyB(pRiskNtfSequence, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryPositionStat(CShfeFtdcRiskUserApi *api, CShfeFtdcQryStatField *pQryStat, int nRequestID){api->ReqQryPositionStat(pQryStat, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryTradeStat(CShfeFtdcRiskUserApi *api, CShfeFtdcQryStatField *pQryStat, int nRequestID){api->ReqQryTradeStat(pQryStat, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryInvestorLinkManHash(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int nRequestID){api->ReqQryInvestorLinkManHash(pInvestorIDRange, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryInvestorDepartmentHash(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int nRequestID){api->ReqQryInvestorDepartmentHash(pInvestorIDRange, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryStressTest(CShfeFtdcRiskUserApi *api, CShfeFtdcSTPriceField *pSTPrice, int STPriceCnt, CShfeFtdcSTMarginRateField *pSTMarginRate, int STMarginRateCnt, CShfeFtdcSTExchMarginRateField *pSTExchMarginRate, int STExchMarginRateCnt, CShfeFtdcSTStandardField *pSTStandard, CShfeFtdcSTDCECombMarginParamField *pSTDCECombMarginParam, int STDCECombMarginParamCnt, CShfeFtdcSTDCESPInsGroupParamField *pSTDCESPInsGroupParam, int STDCESPInsGroupParamCnt, int nRequestID){api->ReqQryStressTest(pSTPrice, STPriceCnt, pSTMarginRate, STMarginRateCnt, pSTExchMarginRate, STExchMarginRateCnt, pSTStandard, pSTDCECombMarginParam, STDCECombMarginParamCnt, pSTDCESPInsGroupParam, STDCESPInsGroupParamCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryLowMarginInvestorHash(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int nRequestID){api->ReqQryLowMarginInvestorHash(pInvestorIDRange, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryLowMarginInvestor(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int InvestorIDRangeCnt, int nRequestID){api->ReqQryLowMarginInvestor(pInvestorIDRange, InvestorIDRangeCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqSetSmsStatus(CShfeFtdcRiskUserApi *api, CShfeFtdcSetSmsStatusField *pSetSmsStatus, int nRequestID){api->ReqSetSmsStatus(pSetSmsStatus, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryExchMarginRate(CShfeFtdcRiskUserApi *api, CShfeFtdcQryExchMarginRateField *pQryExchMarginRate, int nRequestID){api->ReqQryExchMarginRate(pQryExchMarginRate, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryCommissionRate(CShfeFtdcRiskUserApi *api, CShfeFtdcQryInstrumentCommissionRateField *pQryInstrumentCommissionRate, int nRequestID){api->ReqQryCommissionRate(pQryInstrumentCommissionRate, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQrySecAgentInvestorHash(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int nRequestID){api->ReqQrySecAgentInvestorHash(pInvestorIDRange, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQrySecAgentInvestor(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int InvestorIDRangeCnt, int nRequestID){api->ReqQrySecAgentInvestor(pInvestorIDRange, InvestorIDRangeCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryOptionInstrCommRate(CShfeFtdcRiskUserApi *api, CShfeFtdcQryOptionInstrCommRateField *pQryOptionInstrCommRate, int nRequestID){api->ReqQryOptionInstrCommRate(pQryOptionInstrCommRate, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryMMOptionInstrCommRate(CShfeFtdcRiskUserApi *api, CShfeFtdcQryMMOptionInstrCommRateField *pQryMMOptionInstrCommRate, int nRequestID){api->ReqQryMMOptionInstrCommRate(pQryMMOptionInstrCommRate, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryExecOrder(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskQryExecOrderField *pRiskQryExecOrder, int nRequestID){api->ReqQryExecOrder(pRiskQryExecOrder, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryLogUserLoginStat(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskQryLogUserLoginStatField *pRiskQryLogUserLoginStat, int nRequestID){api->ReqQryLogUserLoginStat(pRiskQryLogUserLoginStat, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryLogUserLoginInfo(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskQryLogUserLoginInfoField *pRiskQryLogUserLoginInfo, int nRequestID){api->ReqQryLogUserLoginInfo(pRiskQryLogUserLoginInfo, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryInstrumentGreeks(CShfeFtdcRiskUserApi *api, CShfeFtdcRiskQryInstrumentGreeksField *pRiskQryInstrumentGreeks, int nRequestID){api->ReqQryInstrumentGreeks(pRiskQryInstrumentGreeks, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryExeciseTest(CShfeFtdcRiskUserApi *api, CShfeFtdcETPriceField *pETPrice, int ETPriceCnt, CShfeFtdcETStrikePositionField *pETStrikePosition, int ETStrikePositionCnt, CShfeFtdcETDCECombMarginParamField *pETDCECombMarginParam, int ETDCECombMarginParamCnt, CShfeFtdcETDCESPInsGroupParamField *pETDCESPInsGroupParam, int ETDCESPInsGroupParamCnt, int nRequestID){api->ReqQryExeciseTest(pETPrice, ETPriceCnt, pETStrikePosition, ETStrikePositionCnt, pETDCECombMarginParam, ETDCECombMarginParamCnt, pETDCESPInsGroupParam, ETDCESPInsGroupParamCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryUserRightsAssign(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int nRequestID){api->ReqQryUserRightsAssign(pInvestorIDRange, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQryCurrDRIdentity(CShfeFtdcRiskUserApi *api, CShfeFtdcInvestorIDRangeField *pInvestorIDRange, int nRequestID){api->ReqQryCurrDRIdentity(pInvestorIDRange, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQrySecAgentTradingAccount(CShfeFtdcRiskUserApi *api, CShfeFtdcQryTradingAccountField *pQryTradingAccount, int QryTradingAccountCnt, int nRequestID){api->ReqQrySecAgentTradingAccount(pQryTradingAccount, QryTradingAccountCnt, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQrySyncDelaySwap(CShfeFtdcRiskUserApi *api, CShfeFtdcQrySyncDelaySwapField *pQrySyncDelaySwap, int nRequestID){api->ReqQrySyncDelaySwap(pQrySyncDelaySwap, nRequestID); return 0;}
DLL_EXPORT_C_DECL void* WINAPI ReqQrySecAgentCheckMode(CShfeFtdcRiskUserApi *api, CShfeFtdcQrySecAgentCheckModeField *pQrySecAgentCheckMode, int nRequestID){api->ReqQrySecAgentCheckMode(pQrySecAgentCheckMode, nRequestID); return 0;}